import { getUserMsg, redirectLogIn } from "@/config/oidc";
import { ElMessage } from "element-plus";

/**
 *
 * @param {Boolen} isNeedRedirect 在用户未登录情况是否自动重定向到登录
 * @returns Promise
 */
export default async function checkUserIsLogin(isNeedRedirect) {
  try {
    // 获取用户状态
    let { state } = await getUserMsg();
    ElMessage.success(
      `获取用户信息成功, 用户状态：${state ? "已登录" : "未登录"}`
    );
    if (state) {
      return Promise.resolve(true);
    } else {
      return Promise.resolve(false);
    }
  } catch (err) {
    // 获取用户信息失败
    if (isNeedRedirect) {
      try {
        // 没有获取到用户信息尝试重定向到登录
        await redirectLogIn();
        ElMessage.success("重定向到登录成功");
        return Promise.resolve(true);
      } catch (err) {
        ElMessage.error(`重定向登录失败: ${err}`);
        return Promise.reject(false);
      }
    }
    ElMessage.error(`获取用户信息失败: ${err}`);
    return Promise.reject(false);
  }
}
